home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 10 / FM Towns Free Software Collection 10.iso / fb386 / tool / cdp / cdp.bas next >
BASIC Source File  |  1995-02-16  |  3KB  |  68 lines

  1. 60000 *CP_START
  2. 60010 ON ERROR GOTO *CP_ERR
  3. 60020 CP_MMX!=MOUSE(0):CP_MMY!=MOUSE(1)
  4. 60030 DIM CP_BA!(71),CP_OP%(35):MOUSE 1,,,1
  5. 60040 MOUSE 4,CP_X!,CP_Y!,CP_X!+23,CP_Y!+16
  6. 60050 for cp_=3 to 33 step 2:cp_op%(cp_)=16384:next
  7. 60060 for cp_=6 to 14 step 2:cp_op%(cp_-12*(cp_>11))=-32606:next
  8. 60070 cp_op%(1)=-16129:cp_op%(35)=-16129:cp_op%(34)=-1
  9. 60080 cp_op%(0)=-1:cp_op%(2)=-32640:cp_op%(4)=-32578:cp_op%(12)=-32578
  10. 60090 cp_op%(14)=-32640:cp_op%(16)=-32513:cp_op%(18)=-32640:cp_op%(20)=-32592
  11. 60100 cp_op%(22)=-32596:cp_op%(28)=-32596:cp_op%(30)=-32592:cp_op%(32)=-32640
  12. 60110 GET@A (CP_X!,CP_Y!)-(CP_X!+25,CP_Y!+17),CP_BA!
  13. 60120 LINE (CP_X!,CP_Y!)-STEP(25,17),PSET,7,BF
  14. 60130 put@ (cp_x!,cp_y!)-(cp_x!+25,cp_y!+17),cp_op%,,0
  15. 60140 CDINF CP_IN%:CDSTAT CP_ST%
  16. 60150 CP_ST!=CP_ST%(5)-(CP_ST%(1)=0)
  17. 60160 IF CP_ST%(1) THEN LINE (CP_X!+1,CP_Y!+9)-STEP(6,7),XOR,7,BF
  18. 60170 *CP_LOOP
  19. 60180 CDSTAT CP_ST%
  20. 60190 LINE(CP_X!+9,CP_Y!+1)-STEP(15,15),PSET,7,BF
  21. 60200 SYMBOL (CP_X!+9,CP_Y!+1),RIGHT$(STR$(CP_ST!),2),1,1,0
  22. 60210 WHILE MOUSE(2,0) OR MOUSE(2,1):CDSTAT CP_ST%:WEND
  23. 60220 WHILE MOUSE(2,0)=0 AND MOUSE(2,1)=0:CDSTAT CP_ST%:WEND
  24. 60230 IF MOUSE(2,1) THEN *CP_END
  25. 60240 CP_MX!=MOUSE(4,0)-CP_X!:CP_MY!=MOUSE(5,0)-CP_Y!-1
  26. 60250 CP_R=CP_MX!\8+(CP_MY!\8)*3
  27. 60260 IF CP_MY!=-1 THEN *CP_MOV
  28. 60270 CP_ST!=CP_ST!+(CP_R=1 OR CP_R=4)-(CP_R=2 OR CP_R=5)
  29. 60280 CP_ST!=CP_ST!+(CP_ST!>CP_IN%(5))-(CP_ST!<1)
  30. 60290 IF CP_ST!<>CP_ST%(5) AND CP_ST%(1)=1 THEN *CP_PL
  31. 60300 IF CP_R=0 AND CP_ST%(1)=1 THEN *CP_ST
  32. 60310 IF CP_R=3 AND CP_ST%(1)=0 THEN *CP_PL
  33. 60320 GOTO *CP_LOOP
  34. 60330 *CP_PL
  35. 60340 IF CP_IF%(1)>1 AND CP_ST%(1)=1 THEN GOTO *CP_LOOP
  36. 60350 IF CP_ST%(1)=0 THEN LINE (CP_X!+1,CP_Y!+9)-STEP(6,7),XOR,7,BF
  37. 60360 CD PLAY CP_ST!:GOTO *CP_LOOP
  38. 60370 *CP_ST
  39. 60380 LINE (CP_X!+1,CP_Y!+9)-STEP(6,7),XOR,7,BF
  40. 60390 CD STOP:GOTO *CP_LOOP
  41. 60400 *CP_NODISK
  42. 60410 IF CP_ST!>-1 THEN LINE(CP_X!,CP_Y!)-STEP(25,17),XOR,7,BF
  43. 60420 IF MOUSE(2,1) THEN *CP_END
  44. 60430 CP_ST!=-1
  45. 60440 CDINF CP_IN%:CDSTAT CP_ST%
  46. 60450 CP_ST!=CP_ST%(5)-(CP_ST%(1)=0)
  47. 60460 LINE(CP_X!,CP_Y!)-STEP(25,17),XOR,7,BF
  48. 60470 GOTO *CP_LOOP
  49. 60480 *CP_MOV
  50. 60490 ON ERROR GOTO 0:MOUSE 4,25,0,614,462
  51. 60500 CP_MX!=MOUSE(9):CP_MY!=MOUSE(10):CP_MX!=CP_X!:CP_MY!=CP_Y!
  52. 60510 WHILE MOUSE(2,0)
  53. 60520 LINE(CP_MX!,CP_MY!)-STEP(25,17),XOR,7,B
  54. 60530 CP_MX!=CP_MX!+MOUSE(9):CP_MY!=CP_MY!+MOUSE(10)
  55. 60540 LINE(CP_MX!,CP_MY!)-STEP(25,17),XOR,7,B
  56. 60550 WEND
  57. 60560 LINE(CP_MX!,CP_MY!)-STEP(25,17),XOR,7,B
  58. 60570 PUT@A (CP_X!,CP_Y!)-(CP_X!+25,CP_Y!+17),CP_BA!
  59. 60580 CP_X!=CP_MX!:CP_Y!=CP_MY!:GOTO *CP_START
  60. 60590 *CP_ERR
  61. 60600 IF ERR=53 THEN RESUME *CP_NODISK
  62. 60610 IF ERR=10 THEN RESUME NEXT
  63. 60620 PRINT ERR,ERL:ERROR ERR
  64. 60630 *CP_END
  65. 60640 PUT@A (CP_X!,CP_Y!)-(CP_X!+25,CP_Y!+17),CP_BA!
  66. 60650 MOUSE 4,0,0,639,479:MOUSE 1,CP_MMX!,CP_MMY!,1
  67. 60660 RETURN
  68.